In a cloud computing environment, computing is delivered as a service rather than a product, whereby shared resources, software and information are provided to computers and other devices as a metered service over a network, such as the Internet. In such an environment, computation, software, data access and storage services are provided to users that do not require knowledge of the physical location and configuration of the system that delivers the services.
In a virtualized computer environment, such as may be implemented in a physical cloud computing node of the cloud computing environment, the virtualized computer environment includes a virtual operating system. The virtual operating system includes a common base portion and separate user portions that all run on a physical computer. The physical computer is referred to as the physical host. The common base portion may be referred to as a hypervisor in which one or more virtual machines in the user portions are run by the hypervisor.
Currently, cloud environment administrators specify priority settings for these virtual machines running on a hypervisor to determine the amount of access they have to the physical resources (e.g., virtual processing unit, memory, network bandwidth). Virtual machines with a higher priority will receive greater access, such as the number of processor cycles, to the physical resources than virtual machines with a lower priority when the physical resource (e.g., virtual processing unit) comes under contention.
In terms of optimizing performance, the cloud computing node should have a good mix of virtual machines running on the cloud computing node with different priority levels. For example, in the scenario where the hypervisor runs 100 virtual machines with the same priority level, no virtual machine can be given additional access to a shared physical resource when the resource comes under contention since every virtual machine has the same priority level. However, if the 100 virtual machines include virtual machines assigned high, medium and low priority levels, the hypervisor has an opportunity to enable those virtual machines with a higher priority level to have greater access to the resource than those virtual machines with a lower priority. In this manner, the resource can be more efficiently utilized.
As a result, the distribution of virtual machines with varying priority levels is an important factor in efficiently utilizing the shared resource. However, when a virtual machine is migrated from one physical host, such as the physical computer of the cloud computing node, to another physical host, the migrated virtual machine may receive a different amount of access to a shared resource on the target physical host than on the source physical host depending on the distribution of priority levels for the other virtual machines running on the target physical host even though the virtual machine's priority level remains the same.
Currently, when a virtual machine is migrated to a target physical host, there is no consideration made to a change in the amount of access by the migrated virtual machine to a shared resource under contention when selecting the target physical host. As a result, the performance levels specified by the administrator may not be maintained.